home *** CD-ROM | disk | FTP | other *** search
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- // Reprezentacja tasmy ogrodzeniowej przy pomocy fizyki ODE
- // Ze skryptu korzysta ODEPhysicsTape.cpp
- ///////////////////////////////////////////////////////////////////////////////////////////////////
-
- !include("ODEPhysics.def")
-
- !TapeParams()
- !Mass(f) // masa ciala [kg]
- !WindFadeInOutDisableTimes(f,f,f) // czasy wygasniecia sily wiatru dla tasmy (fade in, fade out, disable)
- !ForceDisableTime(f) // czas po ktorym fizyka zostanie bezwzglednie wylaczona
-
- !BonesWeightDistribution() // pozwala na ustalenie rozkladu masy
- !SetBoneWeight(s,i) // ustawia wzgledna mase danej kosci
-
- !CollisionResponse() // ustawienie kolizji
- !SetResponse(s,s) // sposob reakcji na kolizje
- !SetResponseParam(s,f) // parametr reakcji na kolizje
-
- !CollisionResponseOff() // wylaczenie kolizji
-
- !Joints()
- !Set3DOFStops(s,f,f,f,f,f,f) // ustawienie parametrow stopu w joincie z 3 stopniami swobody
- !Set2DOFStops(s,f,f,f,f) // ustawienie parametrow stopu w joincie z 2 stopniami swobody
- !Set1DOFStops(s,f,f) // ustawienie parametrow stopu w joincie z 1 stopniem swobody
- !SetFrictionForce(s,f) // sila tarcia jointa - sila probujaca zatrzymac np. zgiecie reki
- !SetStopCFM(s,f) // parametr CFM w reakcji na osiagniecie stopu
- !SetStopERP(s,f) // parametr ERP w reakcji na osiagniecie stopu
- !SetCFM(s,f) // parametr CFM jointa
- !SetFudgeFactor(s,f) // parametr FudgeFactor - okreslajacy wspolczynnik zawrocenia jointa ze stopu
- !SetAnchorPosition(s,f,f,f,f,f,f) // ustawia pozycje stawu (anchora jointa) na podstawie 2 wektorow odleglosci wzglednych od srodkow kosci
-
- //-------------------------------------------------------------------------------
-
- TapeParams()
- {
- Mass(0.5)
- WindFadeInOutDisableTimes(1, 4, 7)
- ForceDisableTime(8)
- }
-
- //-------------------------------------------------------------------------------
-
- PhysicsParams()
- {
- SetPhysicsSurfaceID(SRF_FLEXIBLE)
- SetMaxVels(1700, 10)
- SetCollisionDepthCompressor(0.7, 5)
- SetAutoDisableVels(0.1, 0.1, 2)
- SetAbsorbers(0.02, 0.005)
- SetWaterFloat(0.000000000000000001)
- SetExtraGravity(0, 800, 0)
- EnableMassPoint(1)
- SetMaxWatchingTime(0.5)
- SetAwakener(0)
- }
-
- //-------------------------------------------------------------------------------
-
- ContactParams("Terrain")
- {
- ZeroFlags()
- Mu(300)
-
- SetModeFlag("dContactSlip1")
- SetModeFlag("dContactSlip2")
- Slip1(0.1)
- Slip2(0.1)
-
- SetModeFlag("dContactSoftERP")
- SetModeFlag("dContactSoftCFM")
- SoftERP(0.45)
- SoftCFM(0.00001)
-
- Ignore(0)
- }
-
- //-------------------------------------------------------------------------------
-
- ContactParams("Trees")
- {
- ZeroFlags()
- Mu(10)
-
- SetModeFlag("dContactSlip1")
- SetModeFlag("dContactSlip2")
- Slip1(1)
- Slip2(1)
-
- SetModeFlag("dContactSoftERP")
- SetModeFlag("dContactSoftCFM")
- SoftERP(0.45)
- SoftCFM(0.00001)
-
- Ignore(0)
- }
-
- //-------------------------------------------------------------------------------
-
- ContactParams("NonODEObjects")
- {
- ZeroFlags()
- Mu(10)
-
- SetModeFlag("dContactSlip1")
- SetModeFlag("dContactSlip2")
- Slip1(1)
- Slip2(1)
-
- SetModeFlag("dContactSoftERP")
- SetModeFlag("dContactSoftCFM")
- SoftERP(0.45)
- SoftCFM(0.00001)
-
- Ignore(0)
- }
-
- //-------------------------------------------------------------------------------
-
- ContactParams("ODEObjects")
- {
- ZeroFlags()
- Mu(10)
-
- SetModeFlag("dContactSlip1")
- SetModeFlag("dContactSlip2")
- Slip1(1)
- Slip2(1)
-
- SetModeFlag("dContactSoftERP")
- SetModeFlag("dContactSoftCFM")
- SoftERP(0.45)
- SoftCFM(0.00001)
-
- Ignore(0)
- }
-
- //-------------------------------------------------------------------------------
-
- ContactParams("Water")
- {
- /*
- ZeroFlags()
- Mu(10)
-
- SetModeFlag("dContactSlip1")
- SetModeFlag("dContactSlip2")
- Slip1(1)
- Slip2(1)
-
- SetModeFlag("dContactSoftERP")
- SetModeFlag("dContactSoftCFM")
- SoftERP(0.45)
- SoftCFM(0.00001)
- */
- Ignore(1)
- }
-
- //-------------------------------------------------------------------------------
-
- Joints()
- {
- // parametry stopu
- Set2DOFStops("BONE1 BONE2", -0.20, 0.20, -2.00, 2.00)
- Set2DOFStops("BONE2 BONE3", -0.20, 0.20, -2.00, 2.00)
- Set2DOFStops("BONE3 BONE4", -0.20, 0.20, -2.00, 2.00)
- Set2DOFStops("BONE4 BONE5", -0.20, 0.20, -2.00, 2.00)
- // Set2DOFStops("BONE5 BONE6", -2.20, 2.20, -2.00, 2.00)
- // Set2DOFStops("BONE6 BONE7", -2.20, 2.20, -2.00, 2.00)
- // Set2DOFStops("BONE7 BONE8", -2.20, 2.20, -2.00, 2.00)
- // Set2DOFStops("BONE8 BONE9", -2.20, 2.20, -2.00, 2.00)
- // Set2DOFStops("BONE9 BONE10", -2.20, 2.20, -2.00, 2.00)
-
- // polozenie stawow
- SetAnchorPosition("BONE1 BONE2", 0.50, 0.00, 0.00, -0.50, 0.00, 0.00)
- SetAnchorPosition("BONE2 BONE3", 0.50, 0.00, 0.00, -0.50, 0.00, 0.00)
- SetAnchorPosition("BONE3 BONE4", 0.50, 0.00, 0.00, -0.50, 0.00, 0.00)
- SetAnchorPosition("BONE4 BONE5", 0.50, 0.00, 0.00, -0.50, 0.00, 0.00)
- // SetAnchorPosition("BONE5 BONE6", 0.50, 0.00, 0.00, -0.50, 0.00, 0.00)
- // SetAnchorPosition("BONE6 BONE7", 0.50, 0.00, 0.00, -0.50, 0.00, 0.00)
- // SetAnchorPosition("BONE7 BONE8", 0.50, 0.00, 0.00, -0.50, 0.00, 0.00)
- // SetAnchorPosition("BONE8 BONE9", 0.50, 0.00, 0.00, -0.50, 0.00, 0.00)
- // SetAnchorPosition("BONE9 BONE10", 0.50, 0.00, 0.00, -0.50, 0.00, 0.00)
-
- // sily tarcia stawow
- SetFrictionForce("BONE1 BONE2", 0.04)
- SetFrictionForce("BONE2 BONE3", 0.04)
- SetFrictionForce("BONE3 BONE4", 0.04)
- SetFrictionForce("BONE4 BONE5", 0.04)
- // SetFrictionForce("BONE5 BONE6", 0.04)
- // SetFrictionForce("BONE6 BONE7", 0.04)
- // SetFrictionForce("BONE7 BONE8", 0.04)
- // SetFrictionForce("BONE8 BONE9", 0.04)
- // SetFrictionForce("BONE9 BONE10", 0.04)
-
- // wspolczynniki dopuszczalnych bledow stopow
- SetStopERP("BONE1 BONE2", 0.01)
- SetStopERP("BONE2 BONE3", 0.01)
- SetStopERP("BONE3 BONE4", 0.01)
- SetStopERP("BONE4 BONE5", 0.01)
- // SetStopERP("BONE5 BONE6", 0.01)
- // SetStopERP("BONE6 BONE7", 0.01)
- // SetStopERP("BONE7 BONE8", 0.01)
- // SetStopERP("BONE8 BONE9", 0.01)
- // SetStopERP("BONE9 BONE10", 0.01)
-
- // wspolczynniki sprezystosci jointow po osiagnieciu stopow
- SetStopCFM("BONE1 BONE2", 0.10001)
- SetStopCFM("BONE2 BONE3", 0.10001)
- SetStopCFM("BONE3 BONE4", 0.10001)
- SetStopCFM("BONE4 BONE5", 0.10001)
- // SetStopCFM("BONE5 BONE6", 0.10001)
- // SetStopCFM("BONE6 BONE7", 0.10001)
- // SetStopCFM("BONE7 BONE8", 0.10001)
- // SetStopCFM("BONE8 BONE9", 0.10001)
- // SetStopCFM("BONE9 BONE10", 0.10001)
-
- // wspolczynniki sprezystosci jointow
- SetCFM("BONE1 BONE2", 0.1)
- SetCFM("BONE2 BONE3", 0.1)
- SetCFM("BONE3 BONE4", 0.1)
- SetCFM("BONE4 BONE5", 0.1)
- // SetCFM("BONE5 BONE6", 0.1)
- // SetCFM("BONE6 BONE7", 0.1)
- // SetCFM("BONE7 BONE8", 0.1)
- // SetCFM("BONE8 BONE9", 0.1)
- // SetCFM("BONE9 BONE10", 0.1)
-
- // wspolczynniki tlumienia sily oddalajacej od stopu (1 - brak tlumienia, 0.5 - sila zmniejszona dwukrotnie)
- SetFudgeFactor("BONE1 BONE2", 0.9)
- SetFudgeFactor("BONE2 BONE3", 0.9)
- SetFudgeFactor("BONE3 BONE4", 0.9)
- SetFudgeFactor("BONE4 BONE5", 0.9)
- // SetFudgeFactor("BONE5 BONE6", 0.9)
- // SetFudgeFactor("BONE6 BONE7", 0.9)
- // SetFudgeFactor("BONE7 BONE8", 0.9)
- // SetFudgeFactor("BONE8 BONE9", 0.9)
- // SetFudgeFactor("BONE9 BONE10", 0.9)
- }
-
- //-------------------------------------------------------------------------------
-
- BonesWeightDistribution()
- {
- // ustawiamy ratio masy uzywanych kosci
- SetBoneWeight("Lip_Bone01", 4)
- SetBoneWeight("Lip_Bone02", 2)
- SetBoneWeight("Lip_Bone03", 1)
- SetBoneWeight("Lip_Bone04", 2)
- SetBoneWeight("Lip_Bone05", 4) // wersja 5 elementowa
- // SetBoneWeight("Lip_Bone06", 1)
- // SetBoneWeight("Lip_Bone07", 1)
- // SetBoneWeight("Lip_Bone08", 1)
- // SetBoneWeight("Lip_Bone09", 1)
- // SetBoneWeight("Lip_Bone10", 1)
- }
-
- //-------------------------------------------------------------------------------
-
- CollisionHandlerParams()
- {
- SetType("NONE")
- }
-
- //-------------------------------------------------------------------------------
-
- CollisionSoundsParams()
- {
- SetFreqMinMax(0.6, 1.5)
- SetInterval(0.1)
-
- SetHitMinVolumeLinVel(30)
- SetHitMaxVolumeLinVel(800)
-
- SetFrictionMinVolumeLinVel(2000)
- SetFrictionMaxVolumeLinVel(5000)
- SetFrictionDotThreshold(0.04)
-
- // SetHitSound(SRF_UNKNOWN, "Data/Sounds/collision/common/hit_default_XX.wav")
-
- // SetHitSound(SRF_WOOD, "Data/Sounds/collision/common/hit_wood_XX.wav")
- // SetHitSound(SRF_STONE, "Data/Sounds/collision/common/hit_stone_XX.wav")
- // SetHitSound(SRF_SNOW, "Data/Sounds/collision/common/hit_snow_XX.wav")
- // SetHitSound(SRF_MUD, "Data/Sounds/collision/common/hit_mud_XX.wav")
- // SetHitSound(SRF_FLESH, "Data/Sounds/collision/common/hit_flesh_XX.wav")
- // SetHitSound(SRF_GLASS, "Data/Sounds/collision/common/hit_glass_XX.wav")
- // SetHitSound(SRF_METAL, "Data/Sounds/collision/common/hit_metal_XX.wav")
- // SetHitSound(SRF_PLEXIGLASS, "Data/Sounds/collision/common/hit_plastic_XX.wav")
- // SetHitSound(SRF_PLASTIC, "Data/Sounds/collision/common/hit_plastic_XX.wav")
- // SetHitSound(SRF_GROUND, "Data/Sounds/collision/common/hit_ground_XX.wav")
- // SetHitSound(SRF_GRASS, "Data/Sounds/collision/common/hit_grass_XX.wav")
- // SetHitSound(SRF_WATER, "Data/Sounds/collision/common/hit_water_XX.wav")
- }
-
- //-------------------------------------------------------------------------------
-
-
-
-
-